AWS MediaServices 関連の CloudWatch ダッシュボードをサクッと用意できるスクリプトを触ってみた
こんにちは、大前です。
AWS Media Blog を眺めていたら、AWS MediaServices に関する CloudWatch ダッシュボードをサクッと作れるスクリプトがあるそうなので、触ってみました。
やってみた
0. 事前作業
CloudWatch ダッシュボードを作成するので、Media WorkFlow を使って MediaLive + MediaStore + CloudFront 構成を作成し、事前に配信を数分実施してメトリクスを生成しておきました。
Media WorkFlow の使い方については以下ブログを参照ください。
また、MediaStore は明示的にメトリクス取得設定をしておく必要がありますので注意しましょう。
1. スクリプトのダウンロード
CloudShell を起動し、以下コマンドでスクリプトをダウンロードします。
$ wget https://dlcc9uvp8v2in.cloudfront.net/LATEST.zip && unzip *.zip
ダウンロードが完了すると、LATEST というディレクトリが作成されている事が確認でき、その中に各種スクリプトがあります。
執筆時点(2021/8)で含まれていたスクリプトの一覧は以下です。また、現時点ではあくまで生成のみが可能となっている様なので、生成したダッシュボードの編集や削除は別途コンソールなどで行う必要があります。
- DashJoin_v3.py ... 生成したダッシュボードを結合
- EMX_dashmaker_v03.py ... MediaConnect 用ダッシュボード作成
- EML_Inputs_dash_maker_v12.py ... MediaLive 用ダッシュボード作成
- EMS_dash_maker_v02.py ... MediaStore 用ダッシュボード作成
- EMP_dash_maker_v05.py ... MediaPackage 用ダッシュボード作成
- EMC_status_dash_v03.py ... MediaConvert 用ダッシュボード作成
- EMT_CampaignMetrics_v02.py, EMT_dash_maker_VOD_CHLs_v04.py ... MediaTailor 用ダッシュボード作成
- IVS_Channels_dash_maker_v01.py, IVS_Channels_dash_maker_v02.py ... IVS 用ダッシュボード作成
- S3_status_dash_v02.py, S3_status_dash_v03.py ... S3 用ダッシュボード作成
2. スクリプトを実行してみる
では、今回は事前に MediaLive と MediaStore を利用してメトリクスを生成しておいたので、この 2サービスについて CloudWatch ダッシュボードを作ってみたいと思います。
まず、MediaLive からスクリプトの実行を進めます。
$ python3 EML_Inputs_dash_maker_v12.py
実行すると、生成するダッシュボードの対象とする MediaLive リソースの範囲を確認されます。全て/単一 の他、タグベースで指定することも可能です。今回は単一リソースのみ指定します。
単一リソースのみ指定するオプションを選択したので、対象のチャンネル ID の指定を求められます。現在存在するリソースの一覧を表示してくれるので、わざわざ MediaLive のコンソールを確認する必要がなく親切です。
チャンネル ID を指定したらダッシュボードの作成が完了します。
続いて、MediaStore についてもスクリプトを実行します。
$ python3 EMS_dash_maker_v02.py
こちらも同様に、生成するダッシュボードの対象範囲を聞かれますので、単一リソースを選択します。
存在するリソースのうちどれを対象とするか聞かれるので、入力するとダッシュボードの生成が完了します。
3. 生成されたダッシュボードを確認してみる
コンソールから CloudWatch ダッシュボードを確認すると、MediaLive と MediaStore に関するダッシュボードが生成されている事が確認できます。
それぞれ、各サービスのメトリクスが一覧で確認できて良い感じです。
4. 生成された複数のダッシュボードを一つにまとめる
スクリプトを実行する事で各サービスのダッシュボードをサクッと用意する事ができましたが、1つのダッシュボードで複数のサービスをまとめて確認できると嬉しいケースも多いかと思います。
本スクリプトでは生成した複数のダッシュボードをまとめるスクリプトも提供されていますので、こちらも試してみたいと思います。
$ python3 DashJoin_v3.py
まとめたいダッシュボード情報を聞かれます。各種スクリプトを実行した際に "MediaLive_dashjson_xxxxxx_xxxxxx" の様なファイルがそれぞれ生成されているので、それをスペース区切りで指定します。
スクリプトの実行が完了し、コンソールを確認すると "Combined_Dash_xxxxxx_xxxxxx" という名前のダッシュボードが増えている事が確認できます。
ダッシュボードを開くと、MediaLive と MediaLive のメトリクスが一覧が確認できる様になっています。
おわりに
AWS MediaServices 関連の CloudWatch ダッシュボードをサクッと作成できるスクリプトを試してみました。
メディアワークロードのモニタリングソリューションとして Media Services Application Mapper も提供されていたりしますが、CloudWatch のダッシュボードレベルで良いのであれば、今回紹介したスクリプトを活用するのも良さそうです。
以上、AWS 事業本部の大前でした。